home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Cream of the Crop 26
/
Cream of the Crop 26.iso
/
program
/
ddj0897.zip
/
DYN401.ZIP
/
class
/
pointer.c
< prev
next >
Wrap
C/C++ Source or Header
|
1997-04-16
|
3KB
|
122 lines
/* Copyright (c) 1993-1996 Algorithms Corporation */
/* All rights reserved. */
/* This file automatically generated by dpp - do not edit */
#define DPP_STRATEGY 2
#define DPP_FASTWIDE 0
#line 15 "pointer.d"
#include <math.h>
#define CLASS Pointer_c
#define ivType Pointer_iv_t
#include "generics.h"
object Pointer_c;
#line 28 "pointer.c"
typedef struct _Pointer_iv_t {
void * iVal;
} Pointer_iv_t;
#line 21 "pointer.d"
cmeth objrtn Pointer_cm_gNewWithPtr(object self, void *val)
{
object obj = oSuper(Pointer_c, gNew, self)(self);
ivType *iv = ivPtr(obj);
iv->iVal = val;
return(obj);
}
imeth void * Pointer_im_gPointerValue(object self)
{ Pointer_iv_t *iv = GetIVs(Pointer, self);
return iv->iVal;
}
imeth objrtn Pointer_im_gChangeValue(object self, object val)
{ Pointer_iv_t *iv = GetIVs(Pointer, self);
iv->iVal = (void *) val;
return self;
}
imeth int Pointer_im_gHash(object self)
{ Pointer_iv_t *iv = GetIVs(Pointer, self);
double t;
t = .6125423371 * (double) (unsigned long) iv->iVal;
t = t < 0.0 ? -t : t;
return (int) (BIG_INT * (t - floor(t)));
}
imeth int Pointer_im_gCompare(object self, object obj)
{ Pointer_iv_t *iv = GetIVs(Pointer, self);
void *sv, *ov;
ChkArg(obj, 2);
if (ClassOf(obj) != CLASS)
return oSuper(Pointer_c, gCompare, self)(self, obj);
if ((sv=iv->iVal) < (ov=ivPtr(obj)->iVal))
return -1;
else if (sv == ov)
return 0;
else
return 1;
}
imeth objrtn Pointer_im_gStringRepValue(object self)
{ Pointer_iv_t *iv = GetIVs(Pointer, self);
return vSprintf(String, "%lp", iv->iVal);
}
#line 85 "pointer.c"
objrtn Pointer_initialize(void)
{
static CRITICALSECTION cs;
static int volatile once = 0;
ENTERCRITICALSECTION(_CI_CS_);
if (!once) {
INITIALIZECRITICALSECTION(cs);
once = 1;
}
LEAVECRITICALSECTION(_CI_CS_);
ENTERCRITICALSECTION(cs);
if (Pointer_c) {
LEAVECRITICALSECTION(cs);
return Pointer_c;
}
INHIBIT_THREADER;
Pointer_c = gNewClass(Class, "Pointer", sizeof(Pointer_iv_t), 0, END);
cMethodFor(Pointer, gNewWithPtr, Pointer_cm_gNewWithPtr);
iMethodFor(Pointer, gCompare, Pointer_im_gCompare);
iMethodFor(Pointer, gPointerValue, Pointer_im_gPointerValue);
iMethodFor(Pointer, gStringRepValue, Pointer_im_gStringRepValue);
iMethodFor(Pointer, gHash, Pointer_im_gHash);
iMethodFor(Pointer, gChangeValue, Pointer_im_gChangeValue);
ENABLE_THREADER;
LEAVECRITICALSECTION(cs);
return Pointer_c;
}